class Product < ApplicationRecord

  has_many :line_items

  before_destroy :ensure_not_referenced_by_any_line_item


  private

  def ensure_not_referenced_by_any_line_item
    unless line_items.empty?
      throw :abort
    end
  end




  validates :title, :description, :image_url, presence: true
  validates :price, numericality: {greater_than_or_equal_to: 0.01}
  validates :title,uniqueness: true
  validates :image_url, allow_blank: true, format: {
      with:  %r{\.(gif|jpg|png)\Z}i,
      message: 'must be a URL for GIF, JPG of PNG image'
  }


end
